突破交易系统技术瓶颈,中汇携手微软亚洲研究院探索流水线并行架构
编者按:本币交易系统与外汇交易系统是中国外汇交易中心核心系统,系统处理能力需超过每秒10万笔,延迟要控制在毫秒以内。作为承担系统建设和研发的中汇信息技术(上海)有限公司,为了突破系统性能瓶颈,与微软亚洲研究院合作共同研究系统优化方案,实验显示,“流水线并行”方案可将系统整体吞吐量提升20%,如果对撮合引擎进行更深入的优化,整体性能还将有进一步提升。
中国外汇交易中心以建设“全球人民币及相关产品交易主平台和定价中心”为目标,为银行间外汇市场、货币市场、债券市场等现货及衍生产品提供交易、交易后处理、发行、基准、数据和投资者教育服务。2020年,中国外汇交易中心交易量达1637万亿元人民币,约占上海各类金融要素市场交易总量的3/4。目前,交易中心向全球50多个国家和地区的3万余家机构投资者提供服务,日均交易规模超过6万亿元人民币。中汇信息技术(上海)有限公司(以下简称“中汇公司”)是中国外汇交易中心的全资子公司,承担交易系统的建设工作。随着中国的银行间市场蓬勃发展,金融市场交易量飞速增长,参与的机构数量越来越多,银行间交易模式不断创新发展,各种因素都对交易系统的性能提出了更高的要求。
与此同时,市场机构之间的交易已从人工协商向高频化、程序化发展,交易机制也随着全球金融业务创新而随时发生变化。为了满足业务的快速、可持续发展,中汇公司必须未雨绸缪,在系统性能方面,为未来的业务增长提供新动力。
因此,中汇公司与微软亚洲研究院展开合作研究,针对交易系统的性能优化问题进行了可行性研究与实验。作为微软亚洲研究院创新汇成员,中汇公司此前曾与研究院就个性化推荐系统等问题展开过合作研究,并联合发表了论文,双方的再次合作创新可以说是水到渠成。
随着市场参与机构和交易量的增长,交易平台必须具备可靠性、可扩展性和安全稳定性,底层系统架构必须能够满足上层交易需求。这类平台的最大特点是高吞吐、低延时,对于性能要求极高。此次双方通力合作,成功将交易系统的核心组件——撮合引擎并行化,使系统整体性能得以大幅提升。
中汇公司的撮合引擎是基于传统串行计算模式,这是为了确保金融交易正确性的核心原则——“价格优先、时间优先”,即价高买单或价低卖单优先处理,相同价格的交易订单按照其到达时间的先后处理。随着业务的发展,该串行架构在性能上体现出一定的局限性。对撮合引擎进行并行化无疑可以给系统性能带来最大的提升空间,但同时确保“价格优先、时间优先”的原则并不容易,稍有差池就会影响交易的公平。
为此,微软亚洲研究院项目团队首先对行业知识和业务逻辑进行快速学习,并对现有系统进行深入的分析和测试,针对系统性能提升问题提出了三种并行架构思路:数据并行、任务并行、流水线并行,最终结合外汇交易中心的实际业务,选择了流水线并行方案。
微软亚洲研究院系统研究组高级研究员林昊翔表示,相较于其它并行方案,流水线并行拥有四个明显优势。首先,它可以确保多个订单的不同阶段虽然在同时执行,但是订单整体是按照规定顺序进行撮合,而其它并行方案没有内建的执行顺序保障机制;其次,流水线清晰定义了可以并发执行的代码块,方便理解、细化需要同步原语保护的临界区;第三,流水线并行的扩展性更好,阶段内部的执行相对独立,扩展只需增加更多的流水线阶段即可;最后,该方式对原有撮合引擎的改造是非入侵式、可控的,并行化的实现、测试和后期维护的代价相对较小。
系统、全面地去看待和解决系统优化问题,在中汇信息技术(上海)有限公司高级经理包晓晶看来,是中汇团队在项目合作研究过程中的最大收获。通过前期调研,团队确定了 CPU 指令、系统、处理架构三个优化方向。在指令层面,研究员们会根据翻译后援缓冲器(TLB)和缓存的命中率去优化访存、分支等指令,以及尝试先进的编译技术用于生成更高效的硬件指令;在系统层面,会使用高性能同步原语、批处理 I/O、大内存页等技术;在架构层面,他们会试图突破串行的传统思维束缚,探讨并行架构的可能。
应用工程师看待系统优化时,容易局限在应用设计和代码本身,很难有系统性的优化体系,包晓晶表示,“我们发现,微软亚洲研究院的研究员做系统优化时首先是基于一套完整的优化方法论,然后在充分了解实际问题的基础上实施论证,并且非常善于利用各种先进工具。在与研究员们近距离、手把手的合作中,我们也学到了很多。”
微软亚洲研究院(上海)创新工程组主管研发经理杨玉庆表示,“中汇公司的技术团队本身就是一个具有成长性思维(Growth Mindset)和开放心态的团队,与微软的创新文化非常贴近,所以双方的沟通非常顺畅。”
不过,不同类型的业务系统所受到的约束各不相同。为了确保串行改并行不出错,研究员们大量阅读源代码,一步步熟悉中汇公司的交易系统;并在 Azure 云平台上部署了接近真实系统的模拟环境,精细地执行每一步业务流程;利用各类工具进行测试和验证,找到影响系统性能的各个瓶颈;同时还要思考如何将对系统的影响最小化……
“微软亚洲研究院系统组多年来在构建高吞吐、低延迟、安全可靠、可扩展的并发系统和分布式系统方面拥有深厚的技术积累,并形成了一整套方法论。金融系统有很多独特的约束,对于我们而言,这也是一个全新的应用场景。与中汇公司的合作拓宽了我们的研究方向,加深了我们对技术的理解,对我们未来的研究工作有着宝贵的启发和指导意义,”林昊翔表示。分析、优化和扩展一个已经部署多年的系统非常困难,对此林昊翔建议道,“对于大规模并发系统和分布式系统,一定要在设计之初就全面考虑系统演化的问题。可以考虑采用微内核、可插拔、工具化的系统构建架构来建立应用系统,这样才能更加灵活地支撑后续的系统扩展和业务发展。”
你也许还想看: